
package com.zed.api.persistence.core;

import com.zed.api.persistence.core.util.PersistentException;

import java.util.List;

/**
 * {@link StoreSchemaBuilder},对存储模型进行初始化，如果存储模型是传统的数据库，则执行数据库建表，向表内填充初始化数据。
 * @author Zed
 *
 */
public interface StoreSchemaBuilder {

	/**
	 * 构建存储模型<br>
	 * @Throws PersistentException
	 */
	void build() throws PersistentException;
	
	/**
	 * 执行{@code sqls}
	 * @param sqls {@link List},Sql语句
	 * @Throws PersistentException
	 */
	void initialize(List<String> sqls) throws PersistentException;
	
	/**
	 * 对构建的模型进行初始化<br>
	 * @param containTestData {@link boolean},{@code true}表示包含测试数据初始化,{@code false}表示不包含测试数据初始化
	 */
	void initialize(boolean containTestData) throws PersistentException;
}
